<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 有效字母异位词：就是如果s字符串里面的字符和t字符串里面的字符一致，只是顺序不一样
        // 处理unicode字符情况，有的字符比如😊是两个16位的代码单元，for of会将他拆成2个，Array.from将字符转化为数组，再用for of遍历，就没有这个问题
        var isAnagram = function(s, t) {
            // 个数不同
            if (s.length !== t.length) {
                return false
            }
            let mapS = {}
            let mapT = {}
            // 分别记录s和t里面各自的字符的个数
            for (let str of s) {
                if (mapS[str]) {
                    mapS[str] = mapS[str] + 1
                } else {
                    mapS[str] = 1
                }
            }
            for (let str of t) {
                if (mapT[str]) {
                    mapT[str] = mapT[str] + 1
                } else {
                    mapT[str] = 1
                }
            }

            // 判断mapS里面每个字符的数量和mapT里面的是否一致
            for (let key in mapS) {
                let num = mapS[key]
                if (num !== mapT[key]) {
                    return false
                }
            }
            return true
        };
        console.log(isAnagram('abc', 'bcad'));
    </script>
</body>
</html>